
--[[
描述 ： 画廊 左右滚动的视图
作者 ： 付大志
时间 ： 13/08/14
]]
UIGalleryView =  Class(MLView,'UIGalleryView');

UIGalleryView.ALIGN_LEFT    = 0;    -- 左对齐
UIGalleryView.ALIGN_CENTER  = 1;    -- 中对齐
UIGalleryView.ALIGN_RIGHT   = 2;    -- 右对齐

UIGalleryView.indexAlign    = nil;  -- 对齐方式
UIGalleryView.onClick     = nil;  -- 点击事件代理函数
UIGalleryView.curIndex    = nil;  -- 当前索引
UIGalleryView.id      = nil;  -- 唯一标识
UIGalleryView.viewItems   = nil;  -- 子view数组

UIGalleryView.viewPager   = nil;  --ViewPager控件

--[[
功能   ： 初始化 UIGalleryView 控件
参数   ： viewItems    --  view数组
width        --  宽度
height       --  高度
align        --  对齐方式
viewCtrl     --  所属viewCtrl
返回   ： UIGalleryView 实例
]]
function UIGalleryView:init(viewItems, width, height, align, viewCtrl, id)
  width  = width or UITheme.GALLERYVIEW_WIDTH;
  height = height or UITheme.GALLERYVIEW_HEIGHT;


  self.viewItems    = viewItems;
  self.width    = width;
  self.height   = height;
  self.indexAlign = align or self.ALIGN_RIGHT;
  self.viewCtrl   = viewCtrl;
  self.id     = id;

  --  self.lightImg   = UIImage.imageName(UITheme.GALLERYVIEW_DOT_IMAGE_LIGHT);
  --  self.grayImg  = UIImage.imageName(UITheme.GALLERYVIEW_DOT_IMAGE_GRAY);

  self:initView(width, height, viewCtrl, id);

  self.viewPager = MLViewPager.new():initViewPager(width,height, viewCtrl, id)
  --self:initViewPager();
  self:add(self.viewPager, 0, 0);

  self.onClick = function (  )
    if self.onClickEvent then
      self.onClickEvent(self.curIndex);
    end
  end
  
  --  local pw, ph = UIPageIndex:AWH(#viewItems);
  --  self.dotsView = UIPageIndex.new():init(pw, ph, #viewItems, 1);
  --  -- 设置高宽
  --  local pi = ph;                                   -- 左边留一个间接
  --  if self.indexAlign == self.ALIGN_CENTER then
  --    pi =  (width-pw)/2;
  --  elseif self.indexAlign == self.ALIGN_RIGHT then
  --    pi =  width-pw;
  --  end
  --  self:add(self.dotsView, pi, height-ph*3);    -- 下面留一个索引高度

  return self;
end

--[[
功能   ： 显示控件
参数   ： 无
返回   ： 无
]]
function UIGalleryView:show()
  self:initViewPager(  )
end

function UIGalleryView:initViewPager(  )
  
  if self.dotsView then
    self.dotsView:delAll();
    self:del(self.dotsView);
    self.viewPager:delAllPage();
  end
  --print('self=====',self.viewPager)
  local pw, ph = UIPageIndex:AWH(#self.viewItems);
  self.dotsView = UIPageIndex.new():init(pw, ph, #self.viewItems, 1,self.viewCtrl );
  -- 设置高宽
  local pi = ph;                                   -- 左边留一个间接
  if self.indexAlign == self.ALIGN_CENTER then
    pi =  (self.width-pw)/2;
  elseif self.indexAlign == self.ALIGN_RIGHT then
    pi =  self.width-pw;
  end
  self:add(self.dotsView, pi, self.height-(ph+AW(1)));    -- 下面留一个索引高度

  local index ;
  
  if self.viewItems and #self.viewItems > 0 then
    for index = 1,#self.viewItems do
      self.viewPager:addPage(self.viewItems[index]);
    end
  end
  
  self.viewPager.onPageChange = function ( index )
    --print('zzzzzzzzzzzzzzzzzz')
    self.curIndex = index;
    self.dotsView:setIndex(index);
  end
  --self.viewPager.onPageScroll = function (page,offset)
  --self:onPageScroll( page, offset );
  --end

  --[[
  self.indexAlign = self.indexAlign or 0;
  local cur, dw, dh;
  local x, y = 0, 0;
  if self.indexAlign == 0 then
  for index = 1,#self.viewItems do
  cur = self.viewItems[index];
  dw,dh = cur:getWH();
  y = (self.height - dh)/2
  cur:setXY(x, y);
  self.viewPager:addPage(cur);
  end
  return
  end

  if self.indexAlign == 1 then
  for index = 1,#self.viewItems do
  cur = self.viewItems[index];
  dw,dh = cur:getWH();
  x = self.width - dw;
  y = (self.height - dh)/2;
  cur:setXY(x, y);
  self.viewPager:addPage(cur);
  end
  return
  end

  if self.indexAlign == 2 then
  for index = 1,#self.viewItems do
  cur = self.viewItems[index];
  dw,dh = cur:getWH();
  x = (self.width - dw)/2;
  y = (self.height - dh)/2;
  cur:setXY(x, y);
  self.viewPager:addPage(cur);
  end
  return
  end
  --]]
end

--[[
功能   ： 更新控件
参数   ： 无
返回   ： 无
]]
function UIGalleryView:update()

end


--[[
-----使用方法 V2.0
  local ff= {};
  ff[1] = UIImageView.new():init(UIImage.imageName('1.png'), AW(320), AW(150),self);
  ff[1]:show();
  ff[2] = UIImageView.new():init(UIImage.imageName('2.png'), AW(320), AW(150),self);
  ff[2]:show();
  ff[3] = UIImageView.new():init(UIImage.imageName('3.png'), AW(320), AW(150),self);
  ff[3]:show();

  local mImageFlow = UIGalleryView.new():init(ff, AW(320), AW(150), 2, self);
  mImageFlow.onClickEvent = function ( v )
     print('v=',v)
  end
  
  rootView:add(mImageFlow, 0,0);
]]